// P2676 write by cn_ryh